package org.pps.gl.client;

import java.util.ArrayList;
import java.util.HashMap;

import org.pps.gl.client.data.MessageInfo;
import org.pps.gl.client.data.NewsInfo;
import org.pps.gl.client.data.UserInfo;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface GetInfoServiceAsync {

	void getUserIdentite(String email, AsyncCallback<UserInfo> callback);

	void majIdentite(String email, String firstName, String lastName,
			String statut, String sexe, String dateN,
			AsyncCallback<Boolean> callback);

	void getUserLoginInfo(LoginInfo currentUser,
			AsyncCallback<LoginInfo> asyncCallback);

	void doSearch(String mail, String email, String nomprenom, String societe, String ecole,
			AsyncCallback<HashMap<UserInfo, Integer>> callback);

	void addEtude(String emailUser, String debut, String fin, String nomEcole,
			String specialite, AsyncCallback<Boolean> callback);

	void createContactDemande(String emailDemandeur, String emailReceiver,
			AsyncCallback<Boolean> callback);

	void confirmContactDemande(String emailDemandeur, String emailReceiver,
			AsyncCallback<Boolean> callback);

	void addExperience(String emailAddress, String debut, String fin,
			String nomEntreprise, String direction, String poste,
			String description, String domaine,
			AsyncCallback<Boolean> asyncCallback);

	void getNews(String userMail, AsyncCallback<ArrayList<NewsInfo>> asyncCallback);
	
	
	void doSuggestion(String email, AsyncCallback<HashMap<UserInfo, Integer>> callback);
	
	void addMessage(String destinataire, String expediteur, String message, String titre, AsyncCallback<Boolean> callback);
	
	void getMessage(String userMail, AsyncCallback<ArrayList<MessageInfo>> callback);
		
	void getNbrContactSecond(String user, AsyncCallback<ArrayList<Integer>> callback);

	void deleteExperienceUser(long idExperience, AsyncCallback<Boolean> callback);

	void deleteEtude(long idEtude, AsyncCallback<Boolean> callback);
	
	void deleteMessage(long idMessage, AsyncCallback<Boolean> callback);

	void deleteUser(String user_email, AsyncCallback<Boolean> callback);

	void getIdentite(String email, AsyncCallback<String> asyncCallback);
}
